home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 007a / gmd_200.zip / GMD.DOC < prev   
Text File  |  1991-02-24  |  12KB  |  223 lines

  1.                     Grunged Message Delete (GMD) Utility
  2.                                 Version 2.00
  3.  
  4.  
  5. I.    What does GMD do?
  6.  
  7.       GMD deletes messages not "reasonably" conforming to 1.MSG format.  GMD 
  8.       will also delete messages which have strange characters.  Through 
  9.       command line switches, GMD provides the user some control over the 
  10.       meaning of "reasonably conforming" and "strange characters".  Command 
  11.       line switches also control other options such as which message areas 
  12.       are to be scanned for grunged messages.
  13.  
  14. II.   Why use GMD?
  15.  
  16.       There are two reasons you would want to use GMD.  First, grunged 
  17.       messages can caused some message renumbering programs to lockup.  Since 
  18.       message renumbering is usually a part of nightly processing, your 
  19.       automatic nightly processing is exposed to locking up while you are not 
  20.       around.  When you discover the lockup, you are faced with the task of 
  21.       finding the grunged message, deleting it and then completing the 
  22.       nightly processing.  It is not uncommon for the recovery process to 
  23.       last several hours at in inopportune time.
  24.  
  25.       The other reason to delete grunged message is to spare your users from 
  26.       seeing garbage.
  27.  
  28. III.  When do I use GMD?
  29.  
  30.       The recommended placement of GMD is just before the message delete and 
  31.       renumber phase of your nightly processing.  Running it once per day in 
  32.       this manner should be adequate.
  33.  
  34. IV.   What is a "grunged" message?
  35.  
  36.       This is a fuzzy question and it gets a fuzzy answer.  A grunged message 
  37.       is a message which does not reasonably conform to the 1.MSG format.  It 
  38.       turns out that strict conformance is not desired because so many 
  39.       messages fail to strictly conform to the standard (e.g., strict 
  40.       conformance to the standard requires two spaces between the year and 
  41.       time in the date/time stamp field of the message -- it is fairly common 
  42.       to have only one space).  Thus, strict conformance would result in 
  43.       deleting messages generally considered acceptable.
  44.  
  45.       GMD allows some customizing of the parameters used to determine a 
  46.       grunged message.  Because the content of the message body is so 
  47.       unstructured, GMD does not consider the message body when making the 
  48.       grunged decision.  GMD considers only the "Date", "From", "Subject" and 
  49.       "To" fields of the message header.  For each of these four fields, you 
  50.       can control two parameters.
  51.  
  52.       Those parameters are whether or not a zero length string is permitted 
  53.       and how many non-ASCII characters (characters with the high order bit 
  54.       set) are permitted.  This may seem very simplistic, but it is 
  55.       surprisingly effective.
  56.  
  57.       By default, zero length fields are permitted.  If you want zero length 
  58.       fields detected as grunged, specify the "-zlDate", "-zlFrom", 
  59.       "-zlSubject" and/or "-zlTo" switches on the command line.
  60.  
  61.       By default, no non-ASCII character in the "Date", "From", "Subject" or 
  62.       "To" fields occurring before the field terminating null character is 
  63.       permitted.  (Any character is permitted after the end of the field.)  
  64.       One of the classic symptoms of grunged messages is non-ASCII characters 
  65.       throughout the message.  It is this characteristic of severely grunged 
  66.       messages which is easy to detect.  Unfortunately, some message editors 
  67.       will insert a leading hex FF in their fields.  If no non-ASCII 
  68.       characters are permitted, these messages would be detected as grunged.  
  69.       By command line switches, you can relax this criteria and permit some 
  70.       non-ASCII characters before calling the message grunged.
  71.  
  72.       The command line switches controlling the number of permitted non-ASCII 
  73.       characters are "-Date:n", "-From:n", "-Subject:n" and "-To:n".  In 
  74.       place of the "n" after the colons, you should substitute the number of 
  75.       non-ASCII you will tolerate before the message is considered grunged.  
  76.       The default for all the above switches is zero.
  77.  
  78. V.    How do I tell GMD which message echos to scan?
  79.  
  80.       You tell GMD which echos to process by two optional switches on the 
  81.       command line.  The first switch is "-a<Areas.BBS>".  In place of 
  82.       "<Areas.BBS>" you must substitute the name and path of your 
  83.       ConfMail/QMail style Areas.BBS file.  GMD will read Areas.BBS and get 
  84.       the names of echo directories to be processed.  GMD will skip 
  85.       passthrough areas.
  86.  
  87.       There may be directories not listed in Areas.BBS which you want scanned 
  88.       for grunged messages (e.g., local mail and net mail).  You can specify 
  89.       additional directories to scan by specifying the switch "-d<directory>" 
  90.       as many times as you need.  In place of "<directory>" you must 
  91.       substitute the pathname of a directory you want scanned.  You must omit 
  92.       the trailing backslash.
  93.  
  94.       Mail processors such as QMail output files called "toss logs".  The 
  95.       toss log is a file which contains a list of echo area names where there 
  96.       was incoming mail.  The echos are listed one per line.  GMD can use 
  97.       such a file by specifying the "-e<toss_log>" switch, where "<toss_log>" 
  98.       is the toss log file described above.  When the "-e" switch is used, 
  99.       the "-a" switch must also be specified.
  100.  
  101.       The "-e" switch alters GMD's logic.  Normally, GMD will skip passthru 
  102.       areas because there are no messages.  When "-e" is specified, the 
  103.       passthru areas will be processed because there may be messages which 
  104.       have not been packed.  For non-passthru areas, the first message is 
  105.       assumed to be a "high water mark".  GMD will skip all messages before 
  106.       the high water mark.  The "-e" switch is designed to remove grunged 
  107.       messages as they come in (and before they are scanned and packed).
  108.  
  109.       When the "-p" switch is specifed along with the "-e" switch, passthru 
  110.       areas are skipped even if they appear in the toss log.
  111.  
  112.       At least one of  "-a" or "-d" switch is required.  You may specify 
  113.       both, and can use the "-d" switch as many times as needed.
  114.  
  115. VI.   Is there a way to have GMD move the grunged messages to a holding area 
  116.       instead of deleting them?
  117.  
  118.       Yes, you can accomplish this by using the "-b<BadDirectory>" command 
  119.       line switch.  In place of "<BadDirectory>" you must substitute the 
  120.       directory pathname where GMD is to move grunged messages.  That 
  121.       directory does not have to be on the same drive as the message 
  122.       directory.  However, it should be a directory used solely for the 
  123.       purpose of storing grunged messages.
  124.  
  125.       GMD will name the messages in this directory as follows.  The file name 
  126.       of the grunged message will be up to the first eight characters of the 
  127.       echo name.  The extension will be the lowest three digit number not 
  128.       already used to identify a message.  The date and time stamp of the 
  129.       original message is preserved.
  130.  
  131.       For example, the first bad message in the echo "TECH" would be named 
  132.       "TECH.001" in the bad directory.  If there were already a "TECH.001", 
  133.       it would have been name "TECH.002", etc.  For the echo "CONSULTING", 
  134.       the first bad message would be "CONSULTI.001".
  135.  
  136.       If the echo name contains illegal DOS filename characters, those 
  137.       characters are dropped.  For example, the first bad message in the echo 
  138.       "A.B.C." would be named "ABC.001" in the bad directory.
  139.  
  140. VII.  How can my batch file determine when GMD detects any grunged messages?
  141.  
  142.       GMD set the DOS errorlevel as follows:
  143.  
  144.           ErrorLevel     Meaning
  145.                0         GMD ended normally and detected no grunged messages.
  146.                1         GMD ended normally and detected grunged messages.
  147.                2         GMD did not end normally due to error or ^C.
  148.  
  149. VIII. Is there a way to just get a list of the grunged messages and not 
  150.       delete or move them?
  151.  
  152.       Yes, you can specify the "-t" switch on the command line.  This puts 
  153.       GMD in test mode.  In test mode, GMD will not delete or move any 
  154.       messages, but it will list all grunged message file names along with 
  155.       their corresponding echo name.
  156.  
  157.       Although GMD does not have a log facility, you can re-direct the 
  158.       output.  Re-direction will work even if the "-t" switch is not used.
  159.  
  160. IX.   Can I control the amount of log detail GMD produces?
  161.  
  162.       Yes, you can specify the "-l:n" switch.  The value "n" sets the detail 
  163.       level.  The legal values are:
  164.  
  165.       Value    Meaning
  166.         0      Only error messages are printed to standard error.
  167.         1      Signon message is printed to standard error.
  168.         2      Actions are printed to the console.
  169.         3      As each echo area is processed, it is logged to the console.
  170.         4      Progress for each echo area is shown.
  171.  
  172. X.    How long does GMD take to run?
  173.  
  174.       GMD takes about as much time as the fastest ReNum program.  You can 
  175.       speed this process up by specifying the "-f" switch on the command 
  176.       line.  "-f" places GMD in the fast mode.  In this mode, GMD bypasses 
  177.       normal DOS file structures and reads the disk directly.  (GMD never 
  178.       bypasses DOS when writing to the disk.)  This may not work for all 
  179.       versions of DOS or future versions of DOS.  How fast "-f" actually 
  180.       speeds up processing depends on disk organization and fragmentation.
  181.  
  182.       Since GMD does not directly write to the disk, it is safe to try the 
  183.       "-f" switch along with the "-t" to see if it works.  GMD has several 
  184.       internal consistency checks to insure it is reading the correct data.  
  185.       If the internal consistency check fails, the message "Fast mode 
  186.       disabled." will appear.  If this happens or GMD locks up, the "-f" 
  187.       switch should not be used.  All the assumptions made by the "-f" switch 
  188.       are fully listed in the source to the program.
  189.  
  190. XI.   Is there a quick reference available?
  191.  
  192.       Yes, simply run GMD with no switches.  It will print a summary of the 
  193.       above switches on a single page.
  194.  
  195. XII.  What licensing restrictions are there for using this program?
  196.  
  197.       There are some simple restrictions associated with using the program.  
  198.       You use this program at your own risk.  The author does not warrant the 
  199.       program works as described above or is even suitable for any particular 
  200.       purpose.  The above documentation is intended to describe how the 
  201.       program works in the author's environment.  The author does not claim 
  202.       it will work the same way in your environment or, if it does work, will 
  203.       continue to work.  Further, it is up to you to decide if the program is 
  204.       suitable for any particular purpose on your system.  The author 
  205.       sincerely hopes you find some use for it.
  206.  
  207.       The author freely releases this program along with its source to the 
  208.       public domain.  The program compiles and links using Turbo-C++ with no 
  209.       errors.  The author desires no fees for the use of the program and does 
  210.       not support the program.  The source is provided so you can make any 
  211.       changes you may need to make GMD suitable for your purposes.  
  212.       Basically, this program was a toy and the author has finished playing 
  213.       with it.  The author is not willing to make any further enhancements.  
  214.       Please do not contact the author with ideas for enhancements.  You have 
  215.       the source.  You make them.  As time permits, the author is willing to 
  216.       answer questions about techniques used and how the program generally 
  217.       works.  Also, John Souvestre (at 1:396/1) will attempt to answer 
  218.       questions as his time permits.
  219.  
  220. David Troendle (1:396/5)
  221. February 24, 1991
  222. New Orleans, LA
  223.